var express = require('express');
var router = express.Router();
const travelModel = require('../database/models/travelModel');

//批量转存接口
router.post('/batch', async function(req, res, next) {
  // console.log('批量录入',req.body.data);
  // 1. 获取客户端提交的数据
  let data = req.body.data

  // 2. 将数据批量录入数据库
  let result = await travelModel.insertMany(data)
  console.log(result);
  
  // 3. 相应结果给客户端
  let message = result.length>0 ? "批量录入成功" : "批量录入失败"
  res.send({
    code:202,
    msg:message
  })
});


//查询旅游数据
router.get('/',async (req,res)=>{
  console.log('1111');
  
  // 1. 查询数据库
  let result = await travelModel.find()

  // 2. 给客户端下发数据
  res.send({
    code:201,
    msg:'查询成功',
    data:result
  })
})

//删除旅游数据
router.delete('/',async (req,res)=>{
  // 1. 接收客户端提交的被删除的数据唯一id，并删除
  let id = req.query.id
  let result = await travelModel.remove({_id:id})
  console.log('删除结果',result);
  
  // 2. 给客户端下发数据
  let message = result.n==1 ? '删除成功' : '删除失败'
  res.send({
    code:result.n,
    msg:message
  })
})

//更新旅游数据
router.put('/', async function(req, res, next) {
  // 1. 接收客户端数据包 req.query 作为条件 req.body 作为新数据
  let id = req.query.id  
  // 2. 调用数据库model，将客户端数据更新至数据库
  let result = await travelModel.updateOne(
    {_id:id},  //更新条件
    req.body   //req.body必须是想要更新的数据包对象
  )
  console.log('更新结束',result);
  
  // 3. 给客户端下发结果
  let message = result.n==1 ? '更新成功' : '更新失败'
  res.send({
    code:result.n,
    msg:message
  })
});


//搜索旅游数据
router.get('/search',async (req,res)=>{
  // 1. 获取客户端提交的查询条件
  let tit = req.query.title
  
  // 2. 用条件查询数据库
  // let result = await travelModel.find({"title":tit}) //精准匹配
  let reg = new RegExp(tit,'i')
  let result = await travelModel.find({"title":reg}) //正则匹配，模糊查询

  // 3. 给客户端下发数据
  res.send({
    code:202,
    msg:'搜索成功',
    data:result
  })
})

module.exports = router;
